package com.xinyue.game.gateway.common;

import com.xinyue.game.utils.ByteBufUtil;

import io.netty.buffer.ByteBuf;
import lombok.Data;

/**
 * 游戏网关消息包头，指网关接收客户端消息的包头
 *
 * @author 王广帅
 * @since 2021/11/6 23:25
 */
@Data
public class GameGatewayMessageRequestHeader {

    /**
     * 业务消息id
     */
    private String requestUri;

    /**
     * 请求的唯一标识，是一个以时间开头的，32位长度的字符串,此id全局唯一，从客户端贯穿到服务器整个数据流转流程
     */
    private String requestId;

    private long requestTime;

    /**
     * 读取消息头的内容
     *
     * @param byteBuf
     */
    public void readHeader(ByteBuf byteBuf) {
        this.requestUri = ByteBufUtil.readShortString(byteBuf);
        this.requestId = ByteBufUtil.readIntString(32, byteBuf);
        this.requestTime = byteBuf.readLong();
    }
}
